package Menu;

import MainBoard.PVEChessBoard;
import MainBoard.PVEMainBoard;

import javax.swing.*;
import java.awt.event.*;

public class ChooseLevel extends Menu {
    public static final int primaryField = 1; // 初级场
    public static final int mediumField = 2;  // 中级场
    public static final int seniorField = 3;  // 高级场

    /**
     * 初始化ChooseLevel
     *
     * <p>ChooseLevel是Menu的子类
     * 该界面为棋室对战难度选择界面
     * 通过调用Menu的构造函数来构造ChooseLevel的实例</p>
     */
    public ChooseLevel() {
        super();
    }


    /**
     * 绘制菜单的背景图片
     *
     * <p>图片使用images文件夹下的level.png
     * 图片大小和窗口等大，面板容器设置为透明</p>
     */
    @Override
    public void paintBackground() {
        ImageIcon menuImage = new ImageIcon(this.getClass().getResource("/images/level.png"));
        JLabel menuLabel = new JLabel(menuImage);
        //    添加图片并将其设置为窗口大小
        menuLabel.setBounds(0, 0, this.getWidth(), this.getHeight());
        //    将 menuLabel 置为容器最高层
        this.getLayeredPane().add(menuLabel, new Integer(Integer.MIN_VALUE));
        //    设置面板容器透明
        JPanel menuPanel = (JPanel) this.getContentPane();
        menuPanel.setOpaque(false);
    }

    /**
     * 通过用户点击的区域来相应不同事件
     *
     * <p>设置四块以坐标为区分的响应区域
     * 用户自上而下分别可以触发初级难度、中级难度、高级难度和返回四个模块</p>
     *
     * @param e 用户点击的区域
     */
    @Override
    public void mouseClicked(MouseEvent e) {
        int x = e.getX();
        int y = e.getY();
        if (x >= 70 && x <= 300) {
            if (y >= 215 && y <= 270) {
                //    初级难度
                dispose();
                new PVEMainBoard(primaryField);
            } else if (y >= 327 && y <= 383) {
                //    中级难度
                dispose();
                new PVEMainBoard(mediumField);
            } else if (y >= 439 && y <= 485) {
                dispose();
                new PVEMainBoard(seniorField);
                //    高级难度
            } else if (y >= 551 && y <= 597) {
                //    返回
                dispose();
                new InitialMenu();
            }
        }
    }
}
